package com.ruoyi.web.controller.shop.shop.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 店铺信息对象 shop_shop
 * 
 * @author ruoyi
 * @date 2020-10-15
 */
public class ShopShop //extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private String id;

    /** 分类id */
    @Excel(name = "分类id")
    private String classId;

    /** 开票类型 */
    @Excel(name = "开票类型")
    private String reduceType;

    /** 总店id */
//    @Excel(name = "总店id")
    private String parentId;

    /** 店铺名称 */
    @Excel(name = "店铺名称")
    private String name;

    /** 列表页图片 */
    @Excel(name = "列表页图片")
    private String img;

    /** 店铺简介 */
    @Excel(name = "店铺简介")
    private String introduce;

    /** 余额 */
    @Excel(name = "余额")
    private BigDecimal money;
    private BigDecimal amount;

    /** 总销售额 */
    @Excel(name = "总销售额")
    private BigDecimal allMoney;

    /** 城市id */
    @Excel(name = "城市id")
    private Long cityId;

    /** 店铺地址 */
    @Excel(name = "店铺地址")
    private String address;

    /** 开始营业时间 */
    @Excel(name = "开始营业时间")
    private String startAt;

    /** 关门时间 */
    @Excel(name = "关门时间")
    private String endAt;

    /** 手机号 */
    @Excel(name = "手机号")
    private String phone;

    /** 客服热线 */
    @Excel(name = "客服热线")
    private String mobile;

    /** 营业状态0-营业中，1-已打烊 */
    @Excel(name = "营业状态0-营业中，1-已打烊")
    private Integer status;

    /** 审核状态0-审核中，1-审核通过，2-审核失败 */
    @Excel(name = "审核状态0-审核中，1-审核通过，2-审核失败")
    private Integer check;

    /** 销量 */
    @Excel(name = "销量")
    private Integer sale;

    /** 经度 */
    @Excel(name = "经度")
    private String longitude;

    /** 纬度 */
    @Excel(name = "纬度")
    private String latitude;

    /** 经纬度坐标 */
    @Excel(name = "经纬度坐标")
    private String coordinate;

    /** 服务态度评分 */
    @Excel(name = "服务态度评分")
    private BigDecimal gradeService;

    /** 商品质量评分 */
    @Excel(name = "商品质量评分")
    private BigDecimal gradeQuality;

    /** 商家环境评分 */
    @Excel(name = "商家环境评分")
    private BigDecimal gradeEnvironment;

    /** 总分 */
    @Excel(name = "总分")
    private BigDecimal gradeAll;

    /** 平均分 */
    @Excel(name = "平均分")
    private BigDecimal gradeAvg;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "开店时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createAt;

    /** 删除标记0-正常，1-禁用 */
    private Integer delFlag;

    /** 次标题 **/
    private String subheading;

    /** 备注 **/
    private String note;

    /** 是否是特价商家 0 不是 1 是 **/
    private Integer specialShop;
    /** 分享背景图 **/
    private String shareImg;
    /** 最大商品数 */
    private Integer maxGoods;
    /** 是否首页展示 0 不展示 1 展示 */
    private Integer disabled;
    // 查询审核状态数组
    private List<Integer> checkList;
    //查询总店
    private String parent;
    //主营业务 (分类名称)
    private String className;
    //当日消费
    private BigDecimal todayMoney;
    //时间段内消费金额
    private BigDecimal byDayMoeny;
    //时间段内销量
    private Integer byDaySole;

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }
    public void setClassId(String classId) 
    {
        this.classId = classId;
    }

    public String getClassId() 
    {
        return classId;
    }
    public void setReduceType(String reduceType) 
    {
        this.reduceType = reduceType;
    }

    public String getReduceType() 
    {
        return reduceType;
    }
    public void setParentId(String parentId) 
    {
        this.parentId = parentId;
    }

    public String getParentId() 
    {
        return parentId;
    }
    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }
    public void setImg(String img) 
    {
        this.img = img;
    }

    public String getImg() 
    {
        return img;
    }
    public void setIntroduce(String introduce) 
    {
        this.introduce = introduce;
    }

    public String getIntroduce() 
    {
        return introduce;
    }
    public void setMoney(BigDecimal money) 
    {
        this.money = money;
    }

    public BigDecimal getMoney() 
    {
        return money;
    }
    public void setAllMoney(BigDecimal allMoney) 
    {
        this.allMoney = allMoney;
    }

    public BigDecimal getAllMoney() 
    {
        return allMoney;
    }
    public void setCityId(Long cityId) 
    {
        this.cityId = cityId;
    }

    public Long getCityId() 
    {
        return cityId;
    }
    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }
    public void setStartAt(String startAt) 
    {
        this.startAt = startAt;
    }

    public String getStartAt() 
    {
        return startAt;
    }
    public void setEndAt(String endAt) 
    {
        this.endAt = endAt;
    }

    public String getEndAt() 
    {
        return endAt;
    }
    public void setPhone(String phone) 
    {
        this.phone = phone;
    }

    public String getPhone() 
    {
        return phone;
    }
    public void setMobile(String mobile) 
    {
        this.mobile = mobile;
    }

    public String getMobile() 
    {
        return mobile;
    }
    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }
    public void setCheck(Integer check) 
    {
        this.check = check;
    }

    public Integer getCheck() 
    {
        return check;
    }
    public void setSale(Integer sale) 
    {
        this.sale = sale;
    }

    public Integer getSale() 
    {
        return sale;
    }
    public void setLongitude(String longitude) 
    {
        this.longitude = longitude;
    }

    public String getLongitude() 
    {
        return longitude;
    }
    public void setLatitude(String latitude) 
    {
        this.latitude = latitude;
    }

    public String getLatitude() 
    {
        return latitude;
    }
    public void setCoordinate(String coordinate) 
    {
        this.coordinate = coordinate;
    }

    public String getCoordinate() 
    {
        return coordinate;
    }
    public void setGradeService(BigDecimal gradeService) 
    {
        this.gradeService = gradeService;
    }

    public BigDecimal getGradeService() 
    {
        return gradeService;
    }
    public void setGradeQuality(BigDecimal gradeQuality) 
    {
        this.gradeQuality = gradeQuality;
    }

    public BigDecimal getGradeQuality() 
    {
        return gradeQuality;
    }
    public void setGradeEnvironment(BigDecimal gradeEnvironment) 
    {
        this.gradeEnvironment = gradeEnvironment;
    }

    public BigDecimal getGradeEnvironment() 
    {
        return gradeEnvironment;
    }
    public void setGradeAll(BigDecimal gradeAll) 
    {
        this.gradeAll = gradeAll;
    }

    public BigDecimal getGradeAll() 
    {
        return gradeAll;
    }
    public void setGradeAvg(BigDecimal gradeAvg) 
    {
        this.gradeAvg = gradeAvg;
    }

    public BigDecimal getGradeAvg() 
    {
        return gradeAvg;
    }
    public void setCreateAt(Date createAt) 
    {
        this.createAt = createAt;
    }

    public Date getCreateAt() 
    {
        return createAt;
    }
    public void setDelFlag(Integer delFlag) 
    {
        this.delFlag = delFlag;
    }

    public Integer getDelFlag() 
    {
        return delFlag;
    }
    public String getSubheading() {
        return subheading;
    }

    public void setSubheading(String subheading) {
        this.subheading = subheading;
    }

    public String getNote() {
        return note;
    }

    public void setNote(String note) {
        this.note = note;
    }
    public Integer getSpecialShop() {
        return specialShop;
    }

    public void setSpecialShop(Integer specialShop) {
        this.specialShop = specialShop;
    }

    public List<Integer> getCheckList() {
        return checkList;
    }

    public void setCheckList(List<Integer> checkList) {
        this.checkList = checkList;
    }

    public String getParent() {
        return parent;
    }

    public void setParent(String parent) {
        this.parent = parent;
    }

    public String getShareImg() {
        return shareImg;
    }

    public void setShareImg(String shareImg) {
        this.shareImg = shareImg;
    }

    public boolean isTopShop(){
        return isTopAdmin(this.parentId);
    }

    public boolean isTopAdmin(String parentId){
        return parentId==null;
    }
    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }

    public BigDecimal getTodayMoney() {
        return todayMoney;
    }

    public void setTodayMoney(BigDecimal todayMoney) {
        this.todayMoney = todayMoney;
    }
    public Integer getMaxGoods() {
        return maxGoods;
    }

    public void setMaxGoods(Integer maxGoods) {
        this.maxGoods = maxGoods;
    }

    public BigDecimal getByDayMoeny() {
        return byDayMoeny;
    }

    public void setByDayMoeny(BigDecimal byDayMoeny) {
        this.byDayMoeny = byDayMoeny;
    }

    public Integer getByDaySole() {
        return byDaySole;
    }

    public void setByDaySole(Integer byDaySole) {
        this.byDaySole = byDaySole;
    }

    public Integer getDisabled() {
        return disabled;
    }

    public void setDisabled(Integer disabled) {
        this.disabled = disabled;
    }


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("classId", getClassId())
            .append("reduceType", getReduceType())
            .append("parentId", getParentId())
            .append("name", getName())
            .append("img", getImg())
            .append("introduce", getIntroduce())
            .append("money", getMoney())
            .append("allMoney", getAllMoney())
            .append("cityId", getCityId())
            .append("address", getAddress())
            .append("startAt", getStartAt())
            .append("endAt", getEndAt())
            .append("phone", getPhone())
            .append("mobile", getMobile())
            .append("status", getStatus())
            .append("check", getCheck())
            .append("sale", getSale())
            .append("longitude", getLongitude())
            .append("latitude", getLatitude())
            .append("coordinate", getCoordinate())
            .append("gradeService", getGradeService())
            .append("gradeQuality", getGradeQuality())
            .append("gradeEnvironment", getGradeEnvironment())
            .append("gradeAll", getGradeAll())
            .append("gradeAvg", getGradeAvg())
            .append("createAt", getCreateAt())
            .append("delFlag", getDelFlag())
            .toString();
    }
}
